perm filename PDP11[DOC,TOB]3 blob sn#129337 filedate 1974-11-06 generic text, type T, neo UTF8
00100			PDP11 SYSTEM SOFTWARE
00200	
00300	
00400	OUTLIN[11,BO]
00500	Outline of PDP-11 resident monitor facilities
00600	
00700	
00800				GENERAL
00900	
01000	1.  Monitor calls are compatible with DEC software as far as possible.
01100	The form of a call is: push arguments on the R6 stack, execute an EMT
01200	or TRAP instruction, pop results off the stack.  Success or failure,
01300	when appropriate, is returned in the C bit of the program status.
01400	A file on [11,SYS] will contain definitions of macros, fixed addresses,
01500	and special symbols.
01600	
01700	2.  Until the advent of memory mapping, the system and user code will
01800	have to reside in the same core image.  The common definitions file
01900	will contain an origin for user code.  The system code will be loadable
02000	by 11TTY using the OVERLAY command.  After mapping arrives, the system
02100	code will look more like a resident monitor and there will be ways to
02200	request the monitor to establish a user area.  The loader will then
02300	put the user code where the monitor directs.  The ELF code on the 10
02400	will probably be augmented to include some special MTAPE operations
02500	for this type of communication.  This code will be designed with the
02600	future implementation of some sort of timesharing in mind.
02700	
02800	3.  There will be I/O drivers for the console and the 10/11 interface,
02900	using DEC-style monitor calls.  Since the interface is under the 10's
03000	control, programs on the 10 will have to do the data transfer.  ELFSER
03100	will later be changed to provide full buffered-mode communication
03200	between the two machines.
03300	
03400	
03500			HAND/EYE SPECIFIC THINGS
03600	
03700	4.  Monitor calls to create, schedule, suspend, and kill parallel
03800	processes.  These will run out of the same core image, at least at first,
03900	so this facility is not quite the same as general timesharing.  Not yet
04000	decided exactly how much of the state of these processes is kept by the
04100	Kernel and how much by the user.
04200	
04300	5.  Scheduling: at each clock tick (a tick is just about any time interval
04400	we want), the scheduler activates any process that was waiting for this
04500	time to arrive.  Activation happens by putting the process onto a run
04600	queue.  There are 7 such queues, corresponding to processor priority
04700	levels 0-6, and the highest numbered one is emptied first.  When a
04800	process is activated it pre-empts any running process that has a lower
04900	priority.
05000	
05100	6.  Signalling between processes has not been pinned down yet.  I can
05200	implement some primitives that are guaranteed to be atomic operations
05300	if it turns out to be desirable.
05400	
05500	7.  Processor priority level 7 is reserved for the AD service and "atomic"
05600	monitor calls.  The AD routine will be in the Kernel, executing a command
05700	list to read a set of values.  When the command list is exhausted the
05800	AD routine will call the user's servo, giving it the values read.  The
05900	servo will also run at level 7.  This business can be thought of as a
06000	special case of the scheduling operation, in which no more than one
06100	process at a time can be on the priority-7 run queue.
06200	
     

00100	There is no necessity for tty input for the pdp11.  The PDP10 tty
00200	service and line editor are adequate.  At the moment, there is a small
00300	hitch: the pdp11 interface allows only transfer only from the pdp10
00400	to pdp11.  That is an inconvenience, but no major obstacle.  It means
00500	that the pdp11 must establish a buffer area; the pdp10 must look at
00600	that buffer from time to time to see whether any messages are waiting.
00700	For messages from the pdp11 to user, the interval between glances can
00800	be about the human reflex time, ie a few tenths of a second.  But for
00900	some pdp10 programs, the polling interval can be much shorter, depending
01000	on the meaning of the pdp11 output.
01100	A useful piece of hardware is the PDP11 CONSOLE BOX.  This device will
01200	enable the pdp11 to send messages to the pdp10.  It has a relatively
01300	high priority for the hand/eye system, but as indicated, we can get
01400	along without it.
01500	
01600	HOW CAN WE GET A HIGHER LEVEL LANGUAGE FOR THE PDP11?
01700	HOW CAN WE GET BACK TO DOING RESEARCH WITH MANIPULATION?
01800	HOW CAN WE MINIMIZE THE HARDWARE/SOFTWARE EFFORT ON THE PDP11?
01900	
02000	
02100	Rubin is working on a new version of RUG, called DDT (surprise).
02200	   He is still debugging.
02300	Who has PDP11 involved in similar things?
02400		MIT
02500		SRI
02600		GM
02700		CMU
02800	everyone else has a disk and a resident monitor.
02900	
03000	
03100	JAM
03105	We need either a multi-tasking system or a set of upward-compatible
03110	subroutines (compatible w/ a system to come)
03200	What are the possible monitors which we could use for the PDP11?
03300		UNIX (Bell Labs)
03400		ELF (USC ARPA speech project) -- still evolving
03500		Pitts system--still evolving
03600		DOS, RSX-11 (DEC system)
03700	
03705		home brew
03800	UNIX 
03900	Might consider Licklider's buying UNIX for the ARPA community pdp11's.
04000	It costs $20k, but might be less for us.  It is 50k bytes min (8k resident).
04100	It allows interprocess communication with i/o streams. It has interrupts
04200	among parent and child.  There is no real time service.
04300	
04400	ELF  Dave Reitz, USC speech project
04500	Ask Tovar
04600	
04700	Pitts' system
04800	DOS compatible.  Like the DEC system in having only 1 process.
04900	
04905	
04910	HOME BREW
04915	Our needs are quite limited, since we are more interested in interprocess
04920	control for a single user, with cooperative processes.  Our needs are very
04925	specialized, with strong real-time constraints.  Thus, we need only a small
04930	subset of a general time-sharing system, with process facilities that not
04935	all of them have, and real-time capabilities that none have.  This will be
04940	a small and specialized system.  We should consider that one year of a
04945	talented system programmer is necessary for this effort.
04950	
05000	PDP11 interface to 3330
05100		$17.5k Systems Concepts, $12.5k Petit
05200		new port on 3330 $200/month
05300	
05400	BCPL/11 would be useful to have new code generators
05500	
05600	
05700	To plan choice of these, ask Bo to study and rank order in
05800	difficulty.  JAM's sense is that in increasing order of difficulty:
05900		bare machine, Pitts', ELF, UNIX, home made system
     

00100	Paul says that the PDP-6 system would have had to be redone, anyway.
00200	The hardware did not work and was not documented.  While even the
00300	arm hardware has been impossibly slow, the hardware system will at least be
00400	an improvement over the other.
00500	
00600	Can we use one arm on the PDP-6 and one on PDP-11?  YES
00700	Les
00800	Gafford 50%
00900	McGuire 10%
01000	Panofsky 33%
01100	Wagner 25%
01200	Quam 20%
01300	Charlie 67%
01400	Joe
01500	Bridge
01600	
01700	
01800	Gafford
01900	arm interface (two weeks from Oct 21) for one arm, parts are here,1 wk debug
02000	  when up and debugged, couple months to duplicate for other arm
02100	  cables being made, time-sharing technicians, technician limited
02200	  includes camera servo
02300	2nd Arm Control 12 bit A/D, 8 bit D/A
02400	 2 DEC racks, 8 sample,7preamp cards at 2/day;
02500	  3 1/2 wire wrap at 3-4 days each; 5 analog cards at 1 day each;
02600	  1 wk backplane wiring; 1 wk heatsink; 1 wk debugging
02700	  without making simplifications
02800	  We can do 85% of it without decisions about sample and holds.
02900	  It might slow construction down to simplify.  This will
03000	  function as a general hand/eye device control 64 chan in, 16 out
03100	  Vic's simple controller uses mos switch input, monolithic, parallel
03200	  D/A's output.
03300	console box  design done (Gafford), 2-3 days layout (Gafford)
03400	  1 wk wrap, 1 wk debug,  construction start in 3 wks (means end Dec)
03500	
03600	QUAM
03700	Biggest need is someone with total commitment to each project.
03800	Not much effort has been put on PDP11; 1/2 man year.
03900	Ted has had responsibility but not much interest, other things have had
04000	  higher priority: vending machine interface, voder, autodialer.
04100	We have had only fractions of several people who don't communicate well or
04200	  often.
04300	The drawing program is a negative influence in design.  Unwieldy, causes
04400	  too much trouble in changing design.
04500	PRIORITIES
04600	  ZONKER 99% design
04700	  UNIBUS PORT 80% design, no drawings
04800	  11 MAP
04900	  FAST BUS PORT ?
05000	  DIGITIZER PORT ?
05100	UNIBUS AND DIAGNOSTIC PORT
05200	  design virtually done  1 day (Quam)
05300	  1 wk drawings (Wagner) 1 wk layout (Wagner)
05400	  2 quad hi cards, 4 days each 
05500	  debug 3 days (Quam) independent of Zonker
05600	parts orders-power supplies, cables, connectors, wire wrap sockets,
05700	  capacitors for power supplies, delay lines, dips for TTL (unibus,port,map)
05800	error correction
05900	  Chuck Thacker thinks a big mistake to do without (he designed MAXC and ALTO)
06000	complexities due to TV input
06100	  does not make sense to relax bandwidth
06200	  design and layout would have to be scrapped
06300	Console box not on critical path
06400	plan: bring up one 64k box (map registers on port)
06500	 can use all 64k with 16k page size
06600	need 
06700	 memory interface (with error correction)
06800	 mapping box logic design done, no layout yet
06900	 fast port partially designed
07000	 unibus and diagn port design complete  (Wagner)
07100	Memory Interface critical path, 1 box
07200	  3 wire wrap cards, priority 2 days, parity 3 days, mem control 5 days
07300	  backpanel wiring 6 days
07400	  conclusion 16 days on critical path + 18 days for other two boxes
07500	  pc card stuffing and soldering 15 days, might be low
07600	  3rd pc card type designed, no layout
07700	  debug system (Quam) 1 month, depends on unibus diagnostic port
07800	
07900	TED
08000	1. Arm Control - 2 wks subject to parts delivery
08100	2. 2nd Arm Control - ?
08200	3. Console Box:  Design done (Gafford) Layout not done (Gafford or Wagner)
08300	   1 4 hi card  1 day layout; 2-3 day constr (staff);2-3 days (Ted) debug
08400	4. Map:  design 3-4 days left (Ted); 2 hex hi cards; 2-3 days layout;
08500	   8-10 days (staff) construction; 7 days debug (Ted)
08600	   When are parts delivered?  When is Ted free to do it?
08700	5. Memory Interface (includes error correction)
08800	   8 wire wrap boards, 20 pc two types, 8 pc cards third simple type
08900	   all wire wrap cards designed (Quam), all but 1 laid out (Wagner)
09000	   8 cards at 2-3 days per card + 2 days back panel wiring
09100	   pc cards of two types designed and laid out
09200	     on tape, 1 wk plotting TRW; manuf 2-3 wks
09300	     most components here, constr 10-15 days
09400	   3rd simple card type not even thought out
09500	   debug as a system Quam 15 days
09600	 Ted has some apprehension about the size of the memory interface
09700	 and working in ECL.  The complication follows from two decisions:
09800	 to make the tv input/output very fast, and to include error
09900	 correction.
10000	5. Interface boxes  PDP-11 w/ error logging, SPS-41
10100	   1 big hex hi card, design mostly completed (Quam), no layout
10200	   SPS-41 interface, not absolutely necessary, no work has been done
10300	6. Fast Ports
10400	   TV (Gafford) not designed yet; 1-2 months design (Gafford)
10500	   SPS-41 not designed yet
10600	
10700	
10800	Other hangups
10900	Have not decided on power supplies yet (funny 2v)
11000	
11100	Other laboratory hardware projects competing
11200	  ampex memory
11300	  new tty scanner (adaptive) ?
11400	  KL-10 (July or later) buses, swapper
11500	  XGP replacement
11600	
11700	
11800	SUMMARY OF PROJECT TIME REQUIREMENTS
11900	Arm Control   2 man wks technician
12000	2nd Arm Control 5 man wks technician, 2 man wks Gafford
12100	Console Box  1 man day (Gafford), 3 man day technician, 3 day Ted
12200	Map  4 day Ted, 3 day Gafford, 10 day technician, 7 day Ted
12300	Memory Interface 45 day technician, 18 day Quam, 8 day Ted
12400	PDP-11 Interface box	2 day Quam, 3 day Wagner, 5 days techn, 4 day Ted
12500	
12600	totals  98 day technician, 14 day Gafford, 22 days Ted, 3 days Wagner
12700	multiply by a factor of 3 to allow for unexpected difficulties, maintaining
12800	existing hardware, and competing projects.
12900	Adjusted totals  300 technician, 42 Gafford, 66 Ted, 10 Wagner
13000		this does not even include TV interface, etc.
13100	
13200	
     

00100	CRITICAL PATH
00200	week  beginning Oct 28
00300	1   TRW plots		wire wrap 1 memory	MAP design	arm box
00400	2   check			16 days		MAP layout	   "
00500	3     "				"				debug (Gafford)
00600	4   make PC cards		"				test arm box
00700	5        "		unibus diagnostic port			test arm box
00800	6        "			"				replicate arm
00900	7   stuff and solder						     "
01000	8        "							     "
01100	9. Christmas and New Years holidays
01200	10       "							     "
01300	11  cabling							     "
01400	12  debug (Quam)				MAP wire wrap	     "
01500	13       "					     "		     "
01600	14       "					MAP debug (TED)	     "
01700	15       "					    "
01800	
01900	how could this schedule slip?
02000	  note that it assumes two technicians are available at all times.
02100	     What is the fraction of time technicians are available?
02200	  parts deliveries
02300	    wire wrap sockets for zonker (we have most dips for pc cards)
02400	    cables and power supplies
02500	pc card errors, cards not producible
02600	
02700	
02800	Conclusion:
02900	An absolute minimum time for the system to be usable with this plan is 4 months.
03000	A planning estimate would be twice the fairly realistic time estimate
03100	given above, or about 8 months using the bulk of the hardware staff.
03200	After the initial configuration works, there would be still the
03300	following projects:
03400		memory interface for other two boxes
03500		console box
03600		sps-41 port
03700		tv port
03800	It would seem reasonable to reorder the plan.  
03900		unibus port
04000		error correction (can it be independent of whole interface?)
04100		map
04200	We note that tv input need not be very fast.  Processor speed is
04300	much slower than input, so we lose very little by slowing down tv
04400	input a factor of 3 or so.  That can be done by having a one-line
04500	buffer memory which reads in at tv speeds and reads out over two or
04600	three lines at unibus speeds.  Solid state devices are ideally matched
04700	to unibus speeds.
04800	That may seem like a lot of hardware effort, but it is an order of
04900	magnitude simpler than the tv interface planned.
     

00100	Possible simplifications
00200	1. Simplified interface
00300	   parity - no error correction, have Intel debug
00400	   slow tv input
00500	   18 bits wide
00600	   simple crossbar with some interference (PDP-11 usually waits for SPS-41)
00700	   TTL, standard power supplies
00800	
00900	   means scrapping the other design-design time is a guess.
01000	   not simple to redesign and Quam won't do it.
01100	   also requires a slow input TV device
01200	     that could be a line scan memory which puts every third or fourth line
01300	     at the right place in memory
01400	
01500	2. Unibus Interface plus parity (could put in correction if necessary)
01600	
01700	
01800	
01900	would not bother Ted to scrap the design; he has enormous qualms about the
02000	   design and coordinating all that effort
02100	Quam would raise holy hell, according to Ted
02200	   but that would get it off his back and get it up.